/*
 * Auto generated C++ implementation for Mass Effect 2.
 *	by _silencer.
 */

#include "stdafx.h"
#include "unreal_game.h"

namespace game
{
	IMPLEMENT_PACKAGE_CLASS( GameBreakableActor, KActor, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameHUD, HUD, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GamePawn, Pawn, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GamePlayerController, PlayerController, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GamePlayerInput, PlayerInput, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameProjectile, Projectile, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameTypes, Object, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameVehicle, SVehicle, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameWeapon, Weapon, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameSkelCtrl_Recoil, SkelControlBase, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( GameActorFactoryBreakable, ActorFactoryRigidBody, GameFramework )
	IMPLEMENT_PACKAGE_CLASS( SeqAct_DisplayChapterTitleBase, SequenceAction, GameFramework )


	void GameBreakableActor::Destroyed()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.Destroyed" );

		this->call_function( function, 0, 0 );
	}

	void GameBreakableActor::HideAndDestroy()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.HideAndDestroy" );

		this->call_function( function, 0, 0 );
	}

	void GameBreakableActor::BreakLastApart( Controller* EventInstigator, EmitterSpawnable* Emit, Int I, Vector SpawnLocation )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.BreakLastApart" );

		struct BreakLastApartParams
		{
			Controller* EventInstigator; //offset = 0, size = 4
			EmitterSpawnable* Emit; //offset = 4, size = 4
			Int I; //offset = 8, size = 4
			Vector SpawnLocation; //offset = 12, size = 12
		} params;

		params.EventInstigator = EventInstigator;
		params.Emit = Emit;
		params.I = I;
		params.SpawnLocation = SpawnLocation;

		this->call_function( function, &params, 0 );
	}

	void GameBreakableActor::BreakStepApart( Int BrokenStep, EmitterSpawnable* Emit, Int I, Vector SpawnLocation )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.BreakStepApart" );

		struct BreakStepApartParams
		{
			Int BrokenStep; //offset = 0, size = 4
			EmitterSpawnable* Emit; //offset = 4, size = 4
			Int I; //offset = 8, size = 4
			Vector SpawnLocation; //offset = 12, size = 12
		} params;

		params.BrokenStep = BrokenStep;
		params.Emit = Emit;
		params.I = I;
		params.SpawnLocation = SpawnLocation;

		this->call_function( function, &params, 0 );
	}

	Bool GameBreakableActor::IsValidDamageType( Class* inDamageType, Bool bValid )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.IsValidDamageType" );

		struct IsValidDamageTypeParams
		{
			Class* inDamageType; //offset = 0, size = 4
			Bool ReturnValue: 1; //offset = 4, size = 4
			Bool bValid: 1; //offset = 8, size = 4
		} params;

		params.inDamageType = inDamageType;
		params.bValid = bValid;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void GameBreakableActor::TakeStepDamage( Int Damage, Controller* EventInstigator, Bool bIsBroken, Int BrokenStep )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.TakeStepDamage" );

		struct TakeStepDamageParams
		{
			Int Damage; //offset = 0, size = 4
			Controller* EventInstigator; //offset = 4, size = 4
			Bool bIsBroken: 1; //offset = 8, size = 4
			Int BrokenStep; //offset = 12, size = 4
		} params;

		params.Damage = Damage;
		params.EventInstigator = EventInstigator;
		params.bIsBroken = bIsBroken;
		params.BrokenStep = BrokenStep;

		this->call_function( function, &params, 0 );
	}

	void GameBreakableActor::TakeLastDamage( Int Damage, Controller* EventInstigator, Bool bIsBroken, Int BrokenStep )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.TakeLastDamage" );

		struct TakeLastDamageParams
		{
			Int Damage; //offset = 0, size = 4
			Controller* EventInstigator; //offset = 4, size = 4
			Bool bIsBroken: 1; //offset = 8, size = 4
			Int BrokenStep; //offset = 12, size = 4
		} params;

		params.Damage = Damage;
		params.EventInstigator = EventInstigator;
		params.bIsBroken = bIsBroken;
		params.BrokenStep = BrokenStep;

		this->call_function( function, &params, 0 );
	}

	void GameBreakableActor::TakeDamage( Float Damage, Controller* EventInstigator, Vector HitLocation, Vector Momentum, Class* DamageType, TraceHitInfo HitInfo, Actor* DamageCauser )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.TakeDamage" );

		struct TakeDamageParams
		{
			Float Damage; //offset = 0, size = 4
			Controller* EventInstigator; //offset = 4, size = 4
			Vector HitLocation; //offset = 8, size = 12
			Vector Momentum; //offset = 20, size = 12
			Class* DamageType; //offset = 32, size = 4
			TraceHitInfo HitInfo; //offset = 36, size = 28
			Actor* DamageCauser; //offset = 64, size = 4
		} params;

		params.Damage = Damage;
		params.EventInstigator = EventInstigator;
		params.HitLocation = HitLocation;
		params.Momentum = Momentum;
		params.DamageType = DamageType;
		params.HitInfo = HitInfo;
		params.DamageCauser = DamageCauser;

		this->call_function( function, &params, 0 );
	}

	void GameBreakableActor::SetParticlesLighting( Emitter* Emit )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.SetParticlesLighting" );

		struct SetParticlesLightingParams
		{
			Emitter* Emit; //offset = 0, size = 4
		} params;

		params.Emit = Emit;

		this->call_function( function, &params, 0 );
	}

	Vector GameBreakableActor::GetOffsetToWorld( Vector Offset )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameBreakableActor.GetOffsetToWorld" );

		struct GetOffsetToWorldParams
		{
			Vector Offset; //offset = 0, size = 12
			Vector ReturnValue; //offset = 12, size = 12
		} params;

		params.Offset = Offset;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void GameHUD::StopDrawingChapterTitle()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameHUD.StopDrawingChapterTitle" );

		this->call_function( function, 0, 0 );
	}

	void GameHUD::StartDrawingChapterTitle( String ChapterName, String ActName, Float TotalDrawTime, Float TotalFadeTime )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameHUD.StartDrawingChapterTitle" );

		struct StartDrawingChapterTitleParams
		{
			String ChapterName; //offset = 0, size = 12
			String ActName; //offset = 12, size = 12
			Float TotalDrawTime; //offset = 24, size = 4
			Float TotalFadeTime; //offset = 28, size = 4
		} params;

		params.ChapterName = ChapterName;
		params.ActName = ActName;
		params.TotalDrawTime = TotalDrawTime;
		params.TotalFadeTime = TotalFadeTime;

		this->call_function( function, &params, 0 );
	}

	void GameHUD::SetHUDDrawColor( Byte eColor, Byte Alpha )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GameHUD.SetHUDDrawColor" );

		struct SetHUDDrawColorParams
		{
			Byte eColor; //offset = 0, size = 1
			Byte Alpha; //offset = 1, size = 1
		} params;

		params.eColor = eColor;
		params.Alpha = Alpha;

		this->call_function( function, &params, 0 );
	}

	void GamePawn::GetTargetFrictionCylinder( Float CylinderRadius, Float CylinderHeight )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GamePawn.GetTargetFrictionCylinder" );

		struct GetTargetFrictionCylinderParams
		{
			Float CylinderRadius; //offset = 0, size = 4
			Float CylinderHeight; //offset = 4, size = 4
		} params;

		params.CylinderRadius = CylinderRadius;
		params.CylinderHeight = CylinderHeight;

		this->call_function( function, &params, 0 );
	}

	void GamePlayerController::ClientDisplayChapterTitle( Int DisplayChapter, Float TotalDisplayTime, Float TotalFadeTime, String ChapterName, String ActName )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GamePlayerController.ClientDisplayChapterTitle" );

		struct ClientDisplayChapterTitleParams
		{
			Int DisplayChapter; //offset = 0, size = 4
			Float TotalDisplayTime; //offset = 4, size = 4
			Float TotalFadeTime; //offset = 8, size = 4
			String ChapterName; //offset = 12, size = 12
			String ActName; //offset = 24, size = 12
		} params;

		params.DisplayChapter = DisplayChapter;
		params.TotalDisplayTime = TotalDisplayTime;
		params.TotalFadeTime = TotalFadeTime;
		params.ChapterName = ChapterName;
		params.ActName = ActName;

		this->call_function( function, &params, 0 );
	}

	void GamePlayerController::DisplayChapterTitle( Int DisplayChapter, Float TotalDisplayTime, Float TotalFadeTime )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GamePlayerController.DisplayChapterTitle" );

		struct DisplayChapterTitleParams
		{
			Int DisplayChapter; //offset = 0, size = 4
			Float TotalDisplayTime; //offset = 4, size = 4
			Float TotalFadeTime; //offset = 8, size = 4
		} params;

		params.DisplayChapter = DisplayChapter;
		params.TotalDisplayTime = TotalDisplayTime;
		params.TotalFadeTime = TotalFadeTime;

		this->call_function( function, &params, 0 );
	}

	void GamePlayerController::GetChapterStrings( Int eChapter, String ChapterName, String ActName )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function GameFramework.GamePlayerController.GetChapterStrings" );

		struct GetChapterStringsParams
		{
			Int eChapter; //offset = 0, size = 4
			String ChapterName; //offset = 4, size = 12
			String ActName; //offset = 16, size = 12
		} params;

		params.eChapter = eChapter;
		params.ChapterName = ChapterName;
		params.ActName = ActName;

		this->call_function( function, &params, 0 );
	}
}
